package com.af.financeomine.model;

import java.io.Serializable;

import javax.jdo.annotations.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import org.hibernate.validator.Max;
import org.hibernate.validator.Min;
import org.hibernate.validator.Range;

/**
 * @author  alefabi
 */
@Entity
public class RegistroDespesaMensal implements Serializable{

	private static final long serialVersionUID = 5643673351821076061L;

	/**
	 * @uml.property  name="id"
	 */
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;
	/**
	 * @uml.property  name="nome"
	 */
	@Max(80)
	@Column(length=80)
	private String nome;
	/**
	 * @uml.property  name="descricao"
	 */
	@Max(400)
	@Column(length=400)
	private String descricao;
	/**
	 * @uml.property  name="temFim"
	 */
	private Boolean temFim = Boolean.FALSE;
	/**
	 * @uml.property  name="prestacoes"
	 */
	@Min(0)
	private Integer prestacoes = 0;
	/**
	 * @uml.property  name="diaVencimento"
	 */
	@Range(min=1,max=31)
	private Integer diaVencimento;
	/**
	 * @uml.property  name="valorPrevisto"
	 */
	@Min(1)
	private Double valorPrevisto;
	
	public RegistroDespesaMensal() {
	}

	/**
	 * @return
	 * @uml.property  name="id"
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 * @uml.property  name="id"
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return
	 * @uml.property  name="nome"
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * @param nome
	 * @uml.property  name="nome"
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * @return
	 * @uml.property  name="descricao"
	 */
	public String getDescricao() {
		return descricao;
	}

	/**
	 * @param descricao
	 * @uml.property  name="descricao"
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * @return
	 * @uml.property  name="temFim"
	 */
	public Boolean getTemFim() {
		return temFim;
	}

	/**
	 * @param temFim
	 * @uml.property  name="temFim"
	 */
	public void setTemFim(Boolean temFim) {
		this.temFim = temFim;
	}

	/**
	 * @return
	 * @uml.property  name="prestacoes"
	 */
	public Integer getPrestacoes() {
		return prestacoes;
	}

	/**
	 * @param prestacoes
	 * @uml.property  name="prestacoes"
	 */
	public void setPrestacoes(Integer prestacoes) {
		this.prestacoes = prestacoes;
	}

	/**
	 * @return
	 * @uml.property  name="diaVencimento"
	 */
	public Integer getDiaVencimento() {
		return diaVencimento;
	}

	/**
	 * @param diaVencimento
	 * @uml.property  name="diaVencimento"
	 */
	public void setDiaVencimento(Integer diaVencimento) {
		this.diaVencimento = diaVencimento;
	}

	/**
	 * @return
	 * @uml.property  name="valorPrevisto"
	 */
	public Double getValorPrevisto() {
		return valorPrevisto;
	}

	/**
	 * @param valorPrevisto
	 * @uml.property  name="valorPrevisto"
	 */
	public void setValorPrevisto(Double valorPrevisto) {
		this.valorPrevisto = valorPrevisto;
	}
	
}
